iT邦幫忙

2024 iThome 鐵人賽

DAY 12
0
JavaScript

大樂透對獎系列 第 12

封裝

  • 分享至 

  • xImage
  •  

在CashCard類別中,除了定義儲值用的store方法之外,你還考慮到扣款用的charge方法,以及兌換紅利點數的exchange方法。在類別中定義方法,如果不用傳回值,方法名稱前可以宣告void。

同樣地,charge與exchange方法也分別封裝了扣款以及兌換紅利點數的流程。為了知道兌換紅利點數後,剩餘的點數還有多少,exchange必須傳回剩餘的點數值,方法若會傳回值,必須於方法前宣告傳回值的型態。

若你想封裝類別私有資料,讓使用者無法直接存取,而必須透過你提供的操作方法,經過你定義的流程才有可能存取私有資料,事實上,使用者也無從得知你的類別中有哪些私有資料,使用者不會知道物件的內部細節。

特定的封裝意圖,主要就是隱藏物件細節,將物件當作黑箱進行操作。就如先前的範例,使用者會呼叫建構式,但不知道建構式的細節,使用者會呼叫方法,但不知道方法的流程,使用者也不會知道有哪些私有資料,要操作物件,一律得透過你提供的方法呼叫。

private也可以用在方法或建構式宣告上,私有方法或建構式通常是類別內部某個共用的演算流程,外界不用知道私有方法的存在,而且也可以用在內部類別宣告。


上一篇
字串
下一篇
封裝
系列文
大樂透對獎13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言